﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS_Service.DomianService.Models;
using WCS_Service.RcsServices.Interfaces;

namespace WCS_Service.RcsServices
{
    public class RcsApiBuildService : IRcsApiBuildService
    {
        public BindCtnrAndBinModel CreatBindCtnrAndBin(object para)
        {
            throw new NotImplementedException();
        }

        public BindMaterialTypCodeAndBerthModel CreatbindMaterialTypCodeAndBerth(object para)
        {
            throw new NotImplementedException();
        }

        public BindPodAndBerthModel CreatBindPodAndBerth(object para)
        {
            throw new NotImplementedException();
        }

        public BindPodAndMatModel CreatBindPodAndMat(object para)
        {
            throw new NotImplementedException();
        }

        public BlockAreaModel CreatBlockArea(object para)
        {
            throw new NotImplementedException();
        }

        public BlockStgBinModel CreatBlockStgBin(object para)
        {
            throw new NotImplementedException();
        }

        public BoxApplyPassModel CreatBoxApplyPass(object para)
        {
            throw new NotImplementedException();
        }

        public CancelTaskModel CreatCancelTask(object para)
        {
            throw new NotImplementedException();
        }

        public ClearRoadWayModel CreatClearRoadWay(object para)
        {
            throw new NotImplementedException();
        }

        public ContinueTaskModel CreatContinueTask(object para)
        {
            var info = para as ContinueTaskModel;
            if (info is null)
            {
                new ContinueTaskModel();
            }
            return info;
        }

        public GenCtuGroupTaskBatchModel CreatGenCtuGroupTaskBatch(object para)
        {
            throw new NotImplementedException();
        }

        public GenPreScheduleTaskModel CreatPreScheduleTaskModel(object para)
        {
            var info = para as GenPreScheduleTaskModel;
            if (info is null)
            {
                new GenPreScheduleTaskModel();
            }
            return info;
        }

        public GetOutPodModel CreatGetOutPod(object para)
        {
            throw new NotImplementedException();
        }

        public LockPositionModel CreatLockPosition(object para)
        {
            throw new NotImplementedException();
        }

        public QueryAgvModel CreatQueryAgv(object para)
        {
            var info = para as QueryAgvModel;
            if (info is null)
            {
                new QueryAgvModel();
            }
            return info;
        }

        public QueryPodBerthAndMatModel CreatQueryPodBerthAndMat(object para)
        {
            throw new NotImplementedException();
        }

        public QueryTaskStatusModel CreatQueryTaskStatus(object para)
        {
            throw new NotImplementedException();
        }

        public RecoveryAgvModel CreatRecoveryAgv(object para)
        {
            throw new NotImplementedException();
        }

        public ReturnPodModel CreatReturnPod(object para)
        {
            throw new NotImplementedException();
        }

        public SetPriorityModel CreatSetPriority(object para)
        {
            throw new NotImplementedException();
        }

        public StopAgvModel CreatStopAgv(object para)
        {
            throw new NotImplementedException();
        }

        public SyncMapDatasModel CreatSyncMapDatas(object para)
        {
            throw new NotImplementedException();
        }

        public CreatTaskModel CreatTask(object para)
        {
            var info = para as CreatTaskModel;
            if (info is null)
            {
                new CreatTaskModel();
            }
            return info;
        }

        public (ChargeRequestResultModel,string) CreatChargeRequestResultModel(object para)
        {
            ChargeRequestResultModel info = para as ChargeRequestResultModel;
            if (info is null)
            {
                return(new ChargeRequestResultModel(),"");
            }
            return (info,info.reqCode);
        }
    }
}
